package com.建造者模式.imporve;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 指挥者，指挥者来处理盖房子的流程
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
public class HoseDirector {

    HoseBuild hoseBuild;

    /**
     * 房子建造的流程由指挥者来决定
     */
    public House constructHouse(){
        //先打地基
        hoseBuild.buildBasic();
        //再砌墙
        hoseBuild.buildWalls();
        //再封顶
        hoseBuild.roofed();
        //最后将具体的房子返回
        return hoseBuild.buildHouse();
    }

}
